System and method for pushing information from a host system to a mobile data communication device in a wireless data network

ABSTRACT

A system and method for redirecting data from a host system (or messaging server) to one or more mobile data communication devices via a wireless packet data network is provided in which the wireless packet data network dynamically assigns addresses to the one or more mobile data communication devices on an as-needed basis. A redirector application operating at the host system is configured by each user to continuously redirect certain data to the wireless packet data network, as the data is received (or otherwise altered) at the host system. Two methods are provided for communicating the redirected data from the network to the mobile device. In a first method, the mobile device is configured to periodically contact a store-and-forward server within the wireless network, which, when contacted, assigns a network address to the mobile device and then transmits the stored, redirected data to the mobile device. In a second method, the network transmits a connection request command to the mobile device via a parallel voice network, or via a command channel, or other type of low-bandwidth data channel. The mobile device then contacts the data network and requests a network address so that the store-and-forward server can send the redirected data to the mobile device.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority from United States ProvisionalApplications S/ No. 60/268,824, filed on Feb. 14, 2001, S/ No.60/237,616, filed on Oct. 3, 2000, and S/ No. 60/233,501, filed on Sep.19, 2000. This application also claims priority from, and is acontinuation-in-part of, U.S. patent application Ser. No. 09/528,495,filed on Mar. 17, 2000 which is a continuation of Ser. No. 09/087,623,filed on May 29, 1998, now U.S. Pat. No. 6,219,694. The completedisclosure of each of these provisional and utility applications, andthe issued patent, including drawings and claims, is hereby incorporatedinto this application by reference.

BACKGROUND

[0002] 1. Field of the Invention

[0003] The present invention is directed to the field of datacommunications in a wireless network. More specifically, the inventionrelates to a system and method for communicating information to a mobilecommunication device (“mobile device”) within a wireless data network(such as an IP based wireless data network) and also for replicatinginformation between a host system (or a host system with an associatedmessaging server) and the mobile device via the wireless data network.

[0004] 2. Description of the Related Art

[0005] Wireless data networks are known in this field. Early wirelessdata networks include the Mobitex network and the Datatac network. Theseearly networks provided limited data capacity and also required to havefixed addresses for each mobile device. Such a fixed address is alsoknown as a “static” network address. Recently, however, new types ofwireless data networks have emerged having much greater data bandwidth.These new data networks, such as the GPRS network, may utilize theInternet Protocol (IP) for routing data to a mobile device. The inherentaddressing limitations of the IP protocol (and other similar packetprotocols) typically limit the use of have static addressing in thesetypes of data networks, thus leading to a dynamic addressing scheme. Inthis type of addressing scheme, a pool of available network addresses isdynamically assigned to a much greater pool of user devices depending onwhich devices are accessing the network at a given instant.

[0006] As described in more detail in the co-pending, and co-ownedapplication S/N, a wireless data network can be coupled to one or moreredirector applications for enabling real-time mirroring (orredirection) of user data items from a user's office computer (orcorporate server) to the user's mobile device. In such a redirectorapplication, user data items, such as e-mail messages, calendar events,etc., are received at the user's office computer, which then redirects(or mirrors) the data items to the user's mobile device via the wirelessdata network. It would be advantageous to extend this redirection systemto operate with newer wireless data networks such as the General PacketRadio Service (“GPRS”) network, or other networks that may utilize apacket protocol, such as IP, in which the wireless data networkdynamically assigns network addresses on an as-needed basis.

SUMMARY

[0007] A system and method for redirecting data to one or more mobiledata communication devices via a wireless packet data network isprovided in which the network dynamically assigns network addresses tothe mobile data communication devices on an as-needed basis. Aredirector program preferably operating at a host system continuouslyredirects data to the wireless packet data network, as the data isreceived (or altered) at the host system. Two methods are provided forcommunicating the redirected data from the wireless network to themobile device. In a first method, the mobile device is configured toperiodically contact a store-and-forward server (or gateway) operatingin conjunction with the wireless network, which, when contacted,transmits the data to the mobile device. In a second method, thewireless network transmits a connection request command to the mobiledevice via a parallel voice network, or via a control channel on thedata network, or via some other type of low-bandwidth data channel. Themobile device then contacts the wireless data network and requests anetwork address so that the store-and-forward server can send the datato the mobile device. In this second embodiment the presence of a ‘pushbearer’ channel is preferred. A push bearer network is defined as anetwork that can provide an address for the wireless device that isstatically defined and always reachable. The push bearer network canhave low capacity and very limited bandwidth, as is the case with theShort Message Service (SMS) messaging, used on many wireless networks.

[0008] The redirector program enables a user to redirect (or mirror)certain user-selected data items (or parts of data items) from the hostsystem to the user's mobile data communication device upon detectingthat one or more user-defined triggering events has occurred. Alsooperating at the host system are various sub-systems that can beconfigured to create triggering events, such as a screen saversub-system or a keyboard sub-system, as well as sub-systems forrepackaging the user's data items for transparent delivery to the mobiledevice, such as a TCP/IP sub-system or one or more E-Mail sub-systems.Other sub-systems for creating triggering events and repackaging theuser's data items could also be present at the host system.

[0009] Using the redirector program, the user can select certain dataitems for redirection, such as E-mail messages, calendar events, meetingnotifications, address entries, journal entries, personal reminders,etc. Having selected the data items for redirection, the user can thenconfigure one or more event triggers, which are sensed by the redirectorprogram to initiate redirection of the user's data items. Theseuser-defined triggers (or event triggers) may include external events,internal events and networked events. Examples of external eventsinclude: receiving a message from the user's mobile data communicationdevice to begin redirection; receiving a similar message from someexternal computer; sensing that the user is no longer in the vicinity ofthe host system; or any other event that is external to the host system.Internal events could be a calendar alarm, screen saver activation,keyboard timeout, programmable timer, or any other user-defined eventthat is internal to the host system. Networked events are user-definedmessages that are transmitted to the host system from another computercoupled to the host system via a network to initiate redirection.

[0010] In addition to the functionality noted above, the redirectorprogram provides a set of software-implemented control functions fordetermining the type of mobile data communication device and its address(if a static address is used), for programming a preferred list ofmessage types that are to be redirected, and for determining whether themobile device can receive and process certain types of messageattachments, such as word processor or voice attachments.

[0011] The determination of whether a particular mobile device canreceive and process attachments is initially configured by the user ofthat mobile device at the host system. This configuration can be alteredon a global or per message basis by transmitting a command message fromthe mobile device to the host system. If the redirector is configured sothat the mobile device cannot receive and process word processor orvoice attachments, then the redirector program routes these attachmentsto an external machine that is compatible with the particularattachment, such as an attached printer or networked fax machine ortelephone. Other types of attachments could be redirected to other typesof external machines in a similar fashion, depending upon thecapabilities of the mobile device. For example, if a user is travelingand receives a message with an attachment that the user's mobile devicecan process or display, the user may, from a mobile communicationsdevice, send a command message to the host system indicating that thatattachment should be sent to a fax machine at a hotel where the userwill be spending the evening. This enables the user to receive importantE-mail attachments as long as the host system is provided withsufficient information about the destination where the attachment is tobe forwarded.

[0012] Once an event has triggered redirection of the user data items,the host system repackages these items in a manner that is transparentto the mobile data communication device, so that the data at the mobiledevice appears similar to the same data at the user's host system. Thepreferred repackaging method includes wrapping the user data items in anE-mail envelope that corresponds to the address of the mobile datacommunication device, although, alternatively, other repackaging methodscould be used with the present invention, such as special-purpose TCP/IPwrapping techniques, or other methods of wrapping the user selected dataitems. The repackaging method preferably results in a shared E-mailaddress for the user's host system and the user's mobile device. To arecipient of an E-mail generated at either the host or the mobiledevice, it appears as though the E-mail was generated at the hostsystem. The repackaging method also provides encryption/decryption andcompression/decompression.

[0013] In an alternative system and method, the redirector programexecutes at a network server, and the server is programmed to detectnumerous redirection event triggers over a local area network (“LAN”)from multiple user desktop systems coupled to the server via the LAN.The server can receive internal event triggers from each of the userdesktops via the LAN, and can also receive external event triggers, suchas messages from the users' mobile data communication devices. Inresponse to receiving one of these triggers, the server redirects theuser's data items to the proper mobile data communication device. Theuser data items and addressing information for a particular mobiledevice can be stored at the server or at the user's desktop system.Using this alternative configuration, one redirector program can serve aplurality of users. This alternative configuration could also include anInternet or Intranet-based redirector program that could be accessiblethrough a secure webpage or other user interface.

[0014] In another alternative configuration of the present invention, aredirector program operates at both the host system and at the user'smobile data communication device. In this configuration, the user'smobile device operates similarly to the host system, described below,and is configured in a similar fashion to redirect certain user-selecteddata items from the mobile device to the user's host system (or someother computer) upon detecting an event trigger at the mobile device.This configuration provides two-way redirection of information from thehost to the mobile device and from the mobile device to the host.

[0015] The present invention can be used with many types of mobile datacommunication devices, including two-way pagers, cellular telephoneshaving data messaging capabilities, PDAs, laptops, palmtops, or anyother type of wireless communicator. These wireless communicators may bedual-mode devices that operate on both voice and data networks, such asa communicator capable of sending and receiving voice signals over avoice network like GSM, and also capable of sending and receiving datasignals over a data network like GPRS. Or, the wireless communicator maybe a single-mode device that operates on just a data network (likeGPRS), or it may be a multimode device capable of operating on someother combination of voice and data networks.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016]FIG. 1 is a system diagram showing the redirection of user dataitems from a user's desktop PC (host system) to the user's mobile datacommunication device, where the redirector software is operating at theuser's desktop PC.

[0017]FIG. 2 is a system diagram showing the redirection of user dataitems from a network server (host system) to the user's mobile datacommunication device, where the redirector software is operating at theserver.

[0018]FIG. 3 is a block diagram showing the interaction of theredirector software with other components of the host system in FIG. 1(the user's desktop PC) to enable the pushing of information from thehost system to the user's mobile data communication device.

[0019]FIG. 4 is a flow chart showing the steps carried out by theredirector software operating at the host system.

[0020]FIG. 5 is a flow chart showing the steps carried out by the mobiledata communication device to interface with the redirector softwareoperating at the host system.

[0021]FIG. 6 is a system diagram showing the basic components of an IPbased wireless data network, such as the GPRS network, for use with thepresent invention.

[0022]FIG. 7 is a detailed illustration of how addresses are dynamicallyassigned and how data tunnels are created and used within an IP basedwireless network.

[0023]FIG. 8 sets forth the steps to redirect data items over the IPbased wireless network to a mobile device.

[0024]FIG. 9 is a data flow diagram that depicts how a store-and-forwardgateway handles incoming data from redirector programs going to mobiledevices.

[0025]FIG. 10 is a continuation of FIG. 9, and is a data flow diagram ofhow a mobile address to IP address mapping database is updated withexternal and internal events.

[0026]FIG. 11 is a data flow diagram of the mobile device's logic forcommunicating with the store-and-forward gateway.

[0027]FIG. 12 is an illustrative system diagram of a proposed dual modedevice that could be used with the invention.

[0028]FIGS. 13a and 13 b are sequence diagrams illustrating actionstaken at the mobile, DHCP and store and forward gateway after aconnection request command is made to the mobile.

DETAILED DESCRIPTION OF THE DRAWINGS

[0029] Referring now to the drawings, FIG. 1 is an example systemdiagram showing the redirection of user data items (such as message A orC) from a user's office PC (host system) 10 to the user's mobile datacommunication device 24, where the redirector software 12 is operatingat the user's PC. Message A in FIG. 1 represents an internal messagesent from desktop 26 to the user's host system 10 via LAN 14. Message Cin FIG. 1 represents an external message from a sender that is notdirectly connected to LAN 14, such as the user's mobile datacommunication device 24, some other user's mobile device (not shown), orany user connected to the Internet 18. Message C also represents acommand message from the user's mobile data communication device 24 tothe host system 10. As described in more detail in FIG. 3, the term“host system” 10 preferably includes, along with the typical hardwareand software associated with a workstation or desktop computer, theredirector program 12, a TCP/IP subsystem 42, a primary message store40, an E-mail subsystem 44, a screen saver subsystem 48, and a keyboardsubsystem 46. The E-mail subsystem may be composed of one or moremessage servers (not necessarily the same type of message server) linkedvia communication means for the purposes of sending and receiving E-mailbetween workstations in the LAN, the Internet, and one or more Intranetsor other proprietary private networks.

[0030] In FIG. 1, the host system 10 is the user's desktop system,typically located in the user's office. The host system 10 is connectedto a LAN 14, which also connects to other computers 26, 28 that may bein the user's office or elsewhere. The LAN 14, in turn, is connected toa wide area network (“WAN”) 18, such as the Internet, which is definedby the use of the Transmission Control Protocol/Internet Protocol(“TCP/IP”) to exchange information, but which, alternatively, could beany other type of WAN. The connection of the LAN 14 to the WAN 18 is viahigh bandwidth link 16, typically a T1 or T3 connection. The WAN 18, inturn, is connected to a variety of gateways 20 via connections 32. Agateway forms a connection or bridge between the WAN 18 and some othertype of network, such as an RF wireless network, cellular network,satellite network, or other synchronous or asynchronous land-lineconnection.

[0031] In the example of FIG. 1, a wireless gateway 20 is connected tothe Internet for communicating via wireless link 22 to a plurality ofwireless mobile data communication devices 24. For the purposes of thisapplication description the term store-and-forward gateway 140 will alsobe used in place of the term wireless gateway 20. In an embodiment, thestore and forward gateway may be referenced as a Access Point Name (APN)as defined on a network like GPRS. Also shown in FIG. 1 is externalmachine 30, which could be a FAX machine, a printer, a system fordisplaying images (such as video) or a machine capable of processing andplaying audio files, such as a voice mail system. The present inventionincludes the ability to redirect certain message attachments to such anexternal machine 30 if the redirector-program configuration datareflects that the mobile device 24 cannot receive and process theattachments, or if the user has specified that certain attachments arenot to be forwarded to mobile device 24, even if such device can processthose attachments. By way of example, consider an E-mail sent to a userthat includes three attachments—a word processing document, a video clipand an audio clip. The redirection program could be configured to sendthe text of the E-mail to the mobile device, to send the word processingdocument to a networked printer located near the user, to send the videoclip to a store accessible through a secure connection through theInternet, and to send the audio clip to the user's voice mail system.

[0032] The preferred mobile data communication device 24 is a hand-heldtwo-way wireless paging computer, a wirelessly enabled palm-topcomputer, a mobile telephone with data messaging capabilities, or awirelessly enabled laptop computer, but could, alternatively be othertypes of mobile data communication devices capable of sending andreceiving messages via a network connection 22. Although it ispreferable for the system to operate in a two-way communications mode,certain aspects of the invention could be beneficially used in a “oneand one-half” or acknowledgment paging environment, or even with aone-way paging system. The mobile data communication device 24 includessoftware program instructions that work in conjunction with theredirector program 12 to enable the seamless, transparent redirection ofuser-selected data items. FIG. 4 describes the basic method steps of theredirector program 12, and FIG. 5 describes the steps of thecorresponding program operating at the mobile device 24.

[0033] One example of a dual-mode device is shown in FIG. 12. The mobilecommunication device 24 shown in FIG. 12 is preferably a two-waycommunication device having at least voice and data communicationcapabilities. The device preferably has the ability to communicate withother computer systems on the Internet. Depending on the functionalityprovided by the device, the device may be referred to as a datamessaging device, a two-way pager, a cellular telephone with datamessaging capabilities, a wireless Internet appliance or a datacommunication device (with or without telephony capabilities).

[0034] Where the device 24 is enabled for two-way communications, thedevice will incorporate a communication subsystem 1911, including areceiver 1912, a transmitter 1914, and associated components such as oneor more, preferably embedded or internal, antenna elements 1916 and1918, local oscillators (LOs) 1913, and a processing module such as adigital signal processor (DSP) 1920. As will be apparent to thoseskilled in the field of communications, the particular design of thecommunication subsystem 1911 will be dependent upon the communicationnetwork in which the device is intended to operate. For example, adevice 24 destined for a North American market may include acommunication subsystem 1911 designed to operate within the Mobitex™mobile communication system or the DataTAC™ mobile communication system,whereas a device 24 intended for use in Europe may incorporate a GeneralPacket Radio Service (GPRS) communication subsystem 1911.

[0035] Network access requirements will also vary depending upon thetype of network 1919. For example, in the Mobitex and DataTAC networks,mobile devices 24 are registered on the network using a unique personalidentification number or PIN associated with each device. In GPRSnetworks, however, network access is associated with a subscriber oruser of a device 24. A GPRS device therefore requires a subscriberidentity module (not shown), commonly referred to as a SIM card, inorder to operate on a GPRS network. Without a SIM card, a GPRS devicewill not be fully functional. Local or non-network communicationfunctions (if any) may be operable, but the device 24 will be unable tocarry out any functions involving communications over the network 1919.When required network registration or activation procedures have beencompleted, a device 24 may send and receive communication signals overthe network 1919. Signals received by the antenna 1916 through acommunication network 1919 are input to the receiver 1912, which mayperform such common receiver functions as signal amplification,frequency down conversion, filtering, channel selection and the like,and in the example system shown in FIG. 19, analog to digitalconversion. Analog to digital conversion of a received signal allowsmore complex communication functions, such as demodulation and decodingto be performed in the DSP 1920. In a similar manner, signals to betransmitted are processed, including modulation and encoding, forexample, by the DSP 1920 and input to the transmitter 1914 for digitalto analog conversion, frequency up conversion, filtering, amplificationand transmission over the communication network 1919 via the antenna1918.

[0036] The DSP 1920 not only processes communication signals, but alsoprovides for receiver and transmitter control. For example, the gainsapplied to communication signals in the receiver 1912 and transmitter1914 may be adaptively controlled through automatic gain controlalgorithms implemented in the DSP 1920.

[0037] The device 24 preferably includes a microprocessor 1938, whichcontrols the overall operation of the device. Communication functions,including at least data and voice communications, are performed throughthe communication subsystem 1911. The microprocessor 1938 also interactswith other device subsystems, such as the display 1922, flash memory1924, random access memory (RAM) 1926, auxiliary input/output (I/O)subsystems 1928, serial port 1930, keyboard 1932, speaker 1934,microphone 1936, a short-range communications subsystem 1940 and anyother device subsystems generally designated as 1942.

[0038] Some of the subsystems shown in FIG. 12 performcommunication-related functions, whereas other subsystems may provide“resident” or on-device functions. Notably, some subsystems, such askeyboard 1932 and display 1922, for example, may be used for bothcommunication-related functions, such as entering a text message fortransmission over a communication network, and device-residentfunctions, such as a calculator or task list.

[0039] Operating system software used by the microprocessor 1938 ispreferably stored in a persistent store, such as flash memory 1924,which may alternately be a read only memory (ROM) or similar storageelement. Those skilled in the art will appreciate that the operatingsystem, specific device applications, or parts thereof, may betemporarily loaded into a volatile store, such as RAM 1926. It iscontemplated that received communication signals may also be stored toRAM 1926.

[0040] The microprocessor 1938, in addition to its operating systemfunctions, preferably enables execution of software applications on thedevice. A predetermined set of applications that control basic deviceoperations, including at least data and voice communicationapplications, for example, may be installed on the device 24 duringmanufacture. A preferred application that may be loaded onto the devicemay be a personal information manager (PM) application having theability to organize and manage data items relating to the device usersuch as, but not limited to, e-mail, calendar events, voice mails,appointments, and task items. Naturally, one or more memory stores wouldbe available on the device to facilitate storage of PIM data items onthe device. Such PIM application would preferably have the ability tosend and receive data items, via the wireless network. In a preferredembodiment, the PIM data items are seamlessly integrated, synchronizedand updated, via the wireless network, with the device user'scorresponding data items stored or associated with a host computersystem. Further applications may also be loaded onto the device 24through the network 1919, an auxiliary I/O subsystem 1928, serial port1930, short-range communications subsystem 1940 or any other suitablesubsystem 1942, and installed by a user in the RAM 1926 or preferably anon-volatile store for execution by the microprocessor 1938. Suchflexibility in application installation increases the functionality ofthe device and may provide enhanced on-device functions,communication-related functions, or both. For example, securecommunication applications may enable electronic commerce functions andother such financial transactions to be performed using the device 24.

[0041] In a data communication mode, a received signal, such as a textmessage or web page download, will be processed by the communicationsubsystem 1911 and input to the microprocessor 1938, which willpreferably further process the received signal for output to the display1922, or alternatively to an auxiliary I/O device 1928. A user of device24 may also compose data items, such as email messages, for example,using the keyboard 1932, which is preferably a complete alphanumerickeyboard or telephone-type keypad, in conjunction with the display 1922and possibly an auxiliary I/O device 1928. Such composed items may thenbe transmitted over a communication network through the communicationsubsystem 1911.

[0042] For voice communications, overall operation of the device 24 issubstantially similar, except that received signals would preferably beoutput to a speaker 1934 and signals for transmission would be generatedby a microphone 1936. Alternative voice or audio I/O subsystems, such asa voice message recording subsystem, may also be implemented on thedevice 24. Although voice or audio signal output is preferablyaccomplished primarily through the speaker 1934, the display 1922 mayalso be used to provide an indication of the identity of a callingparty, the duration of a voice call, or other voice call relatedinformation for example.

[0043] The serial port 1930 in FIG. 12 would normally be implemented ina personal digital assistant (PDA)-type communication device for whichsynchronization with a user's desktop computer (not shown) may bedesirable, but is an optional device component. Such a port 1930 wouldenable a user to set preferences through an external device or softwareapplication and would extend the capabilities of the device by providingfor information or software downloads to the device 24 other thanthrough a wireless communication network. The alternate download pathmay, for example, be used to load an encryption key onto the devicethrough a direct and thus reliable and trusted connection to therebyenable secure device communication.

[0044] A short-range communications subsystem 1940 is a further optionalcomponent, which may provide for communication between the device 1924and different systems or devices, which need not necessarily be similardevices. For example, the subsystem 1940 may include an infrared deviceand associated circuits and components or a Bluetooth™ communicationmodule to provide for communication with similarly-enabled systems anddevices.

[0045] In an alternative embodiment of the present invention, the mobiledevice 24 also includes a redirector program. In this embodiment, userselected data items can be replicated from the host to the mobile deviceand vice versa. The configuration and operation of the mobile device 24having a redirector program is similar to that described herein withrespect to FIGS. 1-4.

[0046] A user of the present invention can configure the redirectorprogram 12 to push certain user-selected data items to the user's mobiledevice 24 when the redirector 12 detects that a particular user-definedevent trigger (or trigger point) has taken place. User-selected dataitems preferably include E-mail messages, calendar events, meetingnotifications, address entries, journal entries, personal alerts,alarms, warnings, stock quotes, news bulletins, corporate data (from anIntranet or from behind the corporate firewall), etc., but could,alternatively, include any other type of message that is transmitted tothe host system 10, or that the host system 10 acquires through the useof intelligent agents, such as data that is received after the hostsystem 10 initiates a search of a database or a website or a bulletinboard. In some instances, only a portion of the data item is transmittedto the mobile device 24 in order to minimize the amount of datatransmitted via the wireless network 22. In these instances, the mobiledevice 24 can optionally send a command message to the host system toreceive more or all of the data item if the user desires to receive it.

[0047] Among the user-defined event triggers that can be detected by theredirector program 12 are in the preferred embodiment external events,internal events and networked events. External events preferablyinclude: (1) receiving a command message (such as message C) from theuser's mobile data communication device to begin redirection, or toexecute some other command at the host, such as a command to enable thepreferred list mode, or to add or subtract a particular sender from thepreferred list; (2) receiving a similar message from some externalcomputer; and (3) sensing that the user is no longer in the vicinity ofthe host system; although, alternatively, an external event can be anyother detectable occurrence that is external to the host system.Internal events could be a calendar alarm, screen saver activation,keyboard timeout, programmable timer, or any other user-defined eventthat is internal to the host system. Networked events are user-definedmessages that are transmitted to the host system from another computercoupled to the host system via a network to initiate redirection. Theseare just some of the events that could be used with the presentinvention to initiate replication of the user-selected data items fromthe host system 10 to the mobile device 24.

[0048]FIG. 1 shows an E-mail message A being communicated over LAN 14from computer 26 to the user's desktop system 10 (also shown in FIG. 1is an external message C, which could be an E-mail message from anInternet user, or could be a command message from the user's mobiledevice 24). Once the message A (or C) reaches the primary message storeof the host system 10, it can be detected and acted upon by theredirection software 12. The redirection software 12 can use manymethods of detecting new messages. The preferred method of detecting newmessages is using a message server like Microsoft's® Messaging API(MAPI), IMAP4 server or Lotus Notes messaging API, in which programs,such as the redirector program 12, register for notifications or ‘advisesyncs’ when changes to a mailbox take place. Other methods of detectingnew messages could also be used with the present invention. This tightintegration between the redirection program 12 and a messaging servereffectively means the two programs are co-operating to provide awireless extension to an existing messaging product. In anotherembodiment, the redirection program is an embedded component of themessage server.

[0049] Assuming that the redirector program 12 is activated, and hasbeen configured by the user (either through the sensing of an internal,network or external event) to replicate certain user data items(including messages of type A or C) to the mobile device 24, when themessage A is received at the host system 10, the redirector program 12detects its presence and prepares the message for redirection to themobile device 24. In preparing the message for redirection, theredirector program 12 could compress the original message A, couldcompress the message header, or could encrypt the entire message A tocreate a secure link to the mobile device 24.

[0050] Also exchanged between the mobile device and the redirector 12 isa personal identification number (PIN) of the user's mobile device 24such that the redirector 12 associates the mailbox of the user with aPIN. The PIN value could be selected by the manfacturer of the mobiledevice 24 and programmed into the mobile device 24. Alternatively, thisPIN could be a network identifier such as MSISDN, or another valueassociated with the Subscriber Identity Module (SIM) such as the IMSI.This PIN will be processed by the store-and-forward gateway as it mapsthe PIN of the mobile device 24 to the currently assigned IP address.Other values that could be saved by the redirector program 12 couldinclude: the type of device, and whether the device 24 can acceptcertain types of attachments, such as word processing or voiceattachments. If the user's type of mobile device cannot accept thesetypes of attachments, then the redirector 12 can be programmed to routethe attachments to a fax or voice number where the user is located usingan attached fax or voice machine 30.

[0051] The redirector may also be programmed with a preferred list modethat is configured by the user either at the host system 10, or remotelyfrom the user's mobile data communication device by transmitting acommand message C. The preferred list contains a list of senders (otherusers) whose messages are to be redirected or a list of messagecharacteristics that determine whether a message is to be redirected. Ifactivated, the preferred list mode causes the redirector program 12 tooperate like a filter, only redirecting certain user data items based onwhether the data item was sent from a sender on the preferred list orhas certain message characteristics that if present will trigger orsuppress redirection of the message. In the example of FIG. 1, ifdesktop system 26 was operated by a user on the preferred list of hostsystem 10, and the preferred list option was activated, then message Awould be redirected. If, however, desktop 26 was operated by a user noton the host system's preferred list, then message A would not beredirected, even if the user of the host system had configured theredirector to push messages of type A. The user of the host system 10can configure the preferred list directly from the desktop system, or,alternatively, the user can then send a command message (such as C) fromthe mobile device 24 to the desktop system 10 to activate the preferredlist mode, or to add or delete certain senders or messagecharacteristics from the preferred list that was previously configured.It should be appreciated that a redirection program could combinemessage characteristics and preferred sender lists to result in a morefinely-tuned filter. Messages marked as low priority or that are simplereturn receipts or message read receipts, for example, could always besuppressed from redirection while messages from a particular senderwould always be redirected.

[0052] After the redirector has determined that a particular messageshould be redirected, and it has prepared the message for redirection,the software 12 then sends the message A to a secondary memory storelocated in the mobile device 24, using whatever means are necessary. Inthe preferred embodiment this method is to send the message A back overthe LAN 14, WAN 18, and through the store-and-forward gateway 20 to themobile data communication device 24. In doing so, the redirectorpreferably repackages message A as an E-mail with an outer envelope Bthat contains the addressing information of the mobile device 24,although alternative repackaging techniques and protocols could be used,such as a TCP/IP repackaging and delivery method (most commonly used inthe alternative server configuration shown in FIG. 2). The wirelessgateway 20 requires this outer envelope information B in order to knowwhere to send the redirected message A. Once the message (A in B) isreceived by the mobile device 24, the outer envelope B is removed andthe original message A is placed in the secondary memory store withinthe mobile device 24. By repackaging and removing the outer envelope inthis manner, the present invention causes the mobile computer 24 toappear to be at the same physical location as the host system 10, thuscreating a transparent system.

[0053] In the case where message C is representative of an externalmessage from a computer on the Internet 18 to the host system 10, andthe host 10 has been configured to redirect messages of type C, then ina similar manner to message A, message C would be repackaged with anouter envelope B and transmitted to the user's mobile device 24. In thecase where message C is representative of a command message from theuser's mobile device 24 to the host system 10, the command message C isnot redirected, but is acted upon by the host system 10.

[0054] If the redirected user data item is an E-mail message, asdescribed above, the user at the mobile device 24 sees the originalsubject, sender's address, destination address and carbon copy. When theuser replies to this message, or when the user authors a new message,the software operating at the mobile device 24 adds a similar outerenvelope to the reply message (or the new message) to cause the messageto be routed first to the user's host system 10, which then removes theouter envelope and redirects the message to the final destination, suchas back to computer 26. In the preferred embodiment, this results in theoutgoing redirected message from the user's host system 10 being sentusing the E-mail address of the host mailbox, rather than the address ofthe mobile device, so that it appears to the recipient of the messagethat the message originated from the user's desktop system 10 ratherthan the mobile data communication device. Any replies to the redirectedmessage will then be sent to the desktop system 10, which if it is stillin redirector mode, will repackage the reply and resend it to the user'smobile data device, as described above.

[0055]FIG. 2 is an alternative system diagram showing the redirection ofuser data items from a network server 11 to the user's mobile datacommunication device 24, where the redirector software 12 is operatingat the server 11. This configuration is particularly advantageous foruse with message servers such as Microsoft's® Exchange Server, Lotus™Notes Message Server and IMAP4 Message Servers which is normallyoperated so that all user messages are kept in one central location ormailbox store on the server instead of in a store within each user'sdesktop PC. This configuration has the additional advantage of allowinga single system administrator to configure and keep track of all usershaving messages redirected. If the system includes encryption keys,these too can be kept at one place for management and update purposes.

[0056] In this alternative configuration, server 11 preferably maintainsa user profile for each user's desktop system 10, 26, 28, includinginformation such as whether a particular user can have data itemsredirected, which types of message and information to redirect, whatevents will trigger redirection, the PIN of the users' mobile datacommunication device 24, the type of mobile device, and the user'spreferred list, if any. The event triggers are preferably detected atthe user's desktop system 10, 26, 28 and can be any of the external,internal or network events listed above. The desktop systems 10, 26, 28preferably detect these events and then transmit a message to the servercomputer 11 via LAN 14 to initiate redirection. Although the user dataitems are preferably stored at the server computer 11 in thisembodiment, they could, alternatively, be stored at each user's desktopsystem 10, 26, 28, which would then transmit them to the server computer11 after an event has triggered redirection.

[0057] As shown in FIG. 2, desktop system 26 generates a message A thatis transmitted to and stored at the host system 11, which is the networkserver operating the redirector program 12. The message A is for desktopsystem 10, but in this embodiment, user messages are stored at thenetwork server 11. When an event occurs at desktop system 10, an eventtrigger is generated and transmitted to the network server 11, whichthen determines who the trigger is from, whether that desktop hasredirection capabilities, and if so, the server (operating theredirector program) uses the stored configuration information toredirect message A to the mobile computer 24 associated with the user ofdesktop system 10.

[0058] As described above with reference to FIG. 1, message C could beeither a command message from a user's mobile data communication device24, or it could be a message from an external computer, such as acomputer connected to the Internet 18. If the message C is from anInternet computer to the user's desktop system 10, and the user hasredirection capabilities, then the server 11 detects the message C,repackages it using electronic envelope B, and redirects the repackagedmessage (C in B) to the user's mobile device 24. If the message C is acommand message from the user's mobile device 24, then the server 11simply acts upon the command message.

[0059] Turning now to FIG. 3, a block diagram showing the interaction ofthe redirector software 12 with additional components of the host system10 of FIG. 1 (the desktop PC) to enable more fully the pushing ofinformation from the host system 10 to the user's mobile datacommunication device 24 is set forth. These additional components areillustrative of the type of event-generating systems that can beconfigured and used with the redirector software 12, and of the type ofrepackaging systems that can be used to interface with the mobilecommunication device 24 to make it appear transparent to the user.

[0060] The desktop system 10 is connected to LAN 14, and can send andreceive data, messages, signals, event triggers, etc., to and from othersystems connected to the LAN 14 and to external networks 18, 22, such asthe Internet or a wireless data network, which are also coupled to theLAN 14. In addition to the standard hardware, operating system, andapplication programs associated with a typical microcomputer orworkstation, the desktop system 10 includes the redirector program 12, aTCP/IP sub-system 42, an E-mail sub-system 44, a primary data storagedevice 40, a screen saver sub-system 48, and a keyboard sub-system 46.The TCP/IP and E-mail subsystems 42, 44 are examples of repackagingsystems that can be used to achieve the transparency of the presentinvention, and the screen saver and keyboard sub-systems 46, 48 areexamples of event generating systems that can be configured to generateevent messages or signals that trigger redirection of the user selecteddata items.

[0061] The method steps carried out by the redirector program 12 aredescribed in more detail in FIG. 4. The basic functions of this programare: (1) configure and setup the user-defined event trigger points thatwill start redirection; (2) configure the types of user data items forredirection and optionally configure a preferred list of senders whosemessages are to be redirected; (3) configure the type and capabilitiesof the user's mobile data communication device; (4) receive messages andsignals from the repackaging systems and the event generating systems;and (5) command and control the redirection of the user-selected dataitems to the mobile data communication device via the repackagingsystems. Other functions not specifically enumerated could also beintegrated into this program.

[0062] The E-Mail sub-system 44 is the preferred link to repackaging theuser-selected data items for transmission to the mobile datacommunication device 24, and preferably uses industry standard mailprotocols, such as SMTP, POP, IMAP, MIME and RFC-822, to name but a few.The E-Mail sub-system 44 can receive messages A from external computerson the LAN 14, or can receive messages C from some external network suchas the Internet 18 or a wireless data communication network 22, andstores these messages in the primary data store 40. Assuming that theredirector 12 has been triggered to redirect messages of this type, theredirector detects the presence of any new messages and instructs theE-Mail system 44 to repackage the message by placing an outer wrapper Babout the original message A (or C), and by providing the addressinginformation, i.e. PIN value of the mobile data communication device 24on the outer wrapper B. As noted above, this outer wrapper B is removedby the mobile device 24, and the original message A (or C) is thenrecovered, thus making the mobile device 24 appear to be the desktopsystem 10.

[0063] In addition, the E-Mail sub-system 44 receives messages back fromthe mobile device 24 having an outer wrapper with the addressinginformation of the desktop system 10, and strips this information awayso that the message can be routed to the proper sender of the originalmessage A (or C). The E-Mail sub-that it has a current valid IP addressfor the particular mobile device 100. It can run an inactivity timerthat matches the wireless network's 145 inactivity timer for tearingdown tunnels, and clear the IP address for that mobile when the timerexpires. Otherwise, it can implement an address assignment server 335and monitor when IP addresses are revoked and assigned to mobiles.Following the two described IP tracking methods, the gateway 140determines if it does have a valid IP address. If a valid address doesexist, then the gateway 140 will attempt to bypass steps 2-5 in FIG. 8and proceed directly to step 6 directly, which is to send the storeddata immediately to the mobile device 100.

[0064] If the validity of the mobile device's 100 IP address is inquestion, or if there is no mapping of the particular mobile (i.e.,there has never been a packet sent to the device, or if the DHCP hasindicated that the IP address was revoked), then the gateway 140performs the additional steps 2-5.

[0065] In step 2, the gateway 140 sends a connection request commandover the voice network control channel to the mobile device's 100 voiceaddress, in this case shown as an SMS phone number 410. In somenetworks, like GPRS, it is also possible to send the connection requestcommand over an SMS channel (or some other control channel) of the datanetwork. In this case, the SMS phone number is also used but it does notinterfere with the voice component of the device. This connectionrequest command could be implemented in many ways. In one embodiment,the connection request command could be a PING command. For single-modedevices that only communicate over the wireless packet network 145, theconnection request command could be sent over a low-bandwidth controlchannel of the packet network 145.

[0066] There are two responses to step 2. At this point, in addition toFIG. 8 reference may also be made to FIGS. 13a and b to furtherillustrate the two responses. FIGS. 13a and 13 b are sequence diagramsillustrating actions taken at the mobile, DHCP and store and forwardgateway after a connection request command is made to the mobile. FIG.13a is applicable if the store and forward gateway can directly detectan assignment of a network address by the DHCP while FIG. 13b isapplicable if the store and forward gateway cannot directly detect theassignment. Preferably, the mobile device 100 knows which of the tworesponses to execute because the gateway 140 instructs the mobile in theconnection request command sent in step 2. Alternatively, the mobileknows which of the two responses to execute based on the operator of thewireless network (i.e., the operator may program each device atinitialization). If the store-and-forward gateway 140 includes a DHCPserver 335, has control over the data channel to the DHCP server 335, orhas some capability to directly detect the assignment of a networkaddress by the DHCP server 335, then the mobile simply needs to performstep 3 and can skip step 4. In step 3, the mobile device transmits anetwork address request to the network 145, which then allocates anetwork address to the mobile device 100. In this situation, thestore-and-forward gateway 140 will be automatically aware of the new IPaddress assignment after step 3 has taken place and will immediatelyperform steps 5 and 6, which results in the data arriving to the mobile.If the gateway has no control over the DHCP server 335 or detectioncapabilities of assignments by the DHCP server, however, then the mobiledevice 100 performs step 3 followed by step 4, which causes the newlyacquired network address to be sent back to the store-and-forwardgateway 140. In this example the network address is shown as an IPaddress, as it is assumed the mobile device 100 is operating on a IPbased wireless network. Other forms of packet addressing, however, couldbe used with this invention.

[0067] Alternatively, the mobile device 100 could be configured toperiodically execute step 3 in order to acquire an IP address, withoutfirst receiving the connection request command in step 2. In thissituation, step 2 could be omitted. This automatic sending of the IPaddress at a configured interval is seen as less efficient, however, asthe user may have to wait for several minutes for information that iswaiting to be delivered to their mobile device 100. Normally, theconfigured interval will be loaded into the mobile device as part of itsinitial configuration, although it could be updated over-the-air using asecure device updating protocol.

[0068] When step 4 is complete, the store-and-forward gateway 140 willbe provided with enough information to map a mobile device 100 to an IPaddress. This mapping, shown as step 5, is a necessary step forbuilding, addressing and sending an IP packet to the mobile device 100.The initial versions of most IP based wireless networks 145, like theGPRS network, do not allow a gateway 140 to initiate a data link (PDPcontext) to the mobile device 100. One of the main reasons for thislimitation is because most networks continue to focus on IPv4 (InternetProtocol version 4), which is the original IP definition used within theInternet. This has resulted in a very limited address space and theinability to assign each mobile device 100 with a fixed IP address.Therefore, wireless network operators have allocated only a small numberof ‘real IP addresses’ and use a dynamic address assignment as apreferred strategy. Mobile devices 100 must therefore have an alternatepermanent identifier, and servers must maintain a dynamic link betweenthat permanent identifier of the mobile devicde and the temporary IPaddress of the mobile device.

[0069] After the association of mobile device 100 to IP address iscompleted, step 6 can be performed. In this final step, thestore-and-forward gateway 140 sends an IP Packet (either TCP or UDPpacket) via the network tunnel to the same mobile device 100 thatestablished the tunnel 325. With the current IP address available to thegateway 140, each data packet can be addressed correctly and sent to thedevice 100 until the inactivity or out-of-coverage timer expires and theentire IP address reacquiring sequence is performed again. FIGS. 9A and9B provide a detailed algorithm to describe these stepsprogrammatically.

[0070]FIG. 9A is a data flow diagram that depicts how astore-and-forward gateway 140 handles incoming data from redirectorprograms going to mobile devices. Beginning at step 505, data items(215) from a multitude of redirector programs 12 arrive at the gateway140. Each time a data item 215 arrives at the gateway 140, the gateway140 performs a lookup to determine the IP address to mobile devicemapping relationship 510. The data item 205 provides information aboutthe destination mobile to enable this lookup, as part of the packagingtechnique described above. This interaction takes place with a databasethat holds the IP address to mobile address mapping 525A. For oneskilled in the art, this database could be a cache mechanism within RAM.This mapping database 525A could be an Oracle™ database, a Sybase™database, or some form of LDAP database. This database is labeled (A).Once the database mapping information is retrieved, the gateway 140determines, in step 515, if an IP address is present in the database forthe particular mobile device. If there is an address present, then thedata item can be immediately sent to the mobile device 100 in step 520.In this step 520, the gateway 140 also starts a retry timer in case thedata item does not arrive at the mobile device 100 in a specified timeperiod, in which event it is retransmitted from the gateway 140. If themobile cannot receive the data item after multiple retries, as indicatedby the lack of receive acknowledgements, then an expired time value isplaced in the mobile's record within the database 525 to indicate thatthe IP address has gone stale and should not be used.

[0071] If there is no IP address for the particular mobile in thedatabase 525A, or if the address has expired, then the gateway 140determines whether the mobile supports a control channel, such as aconnection over a parallel voice network, or a low bandwidth (i.e.supporting only very small data messages) control channel on the datanetwork. If a command channel is not supported, then the gateway 140must wait for a spontaneous address request message from the mobiledevice 100 in step 535. If the network does support command messages,however, then the gateway 140 determines if it has implemented a DHCPserver in step 540. If the gateway has implemented a DHCP server, then aflag is set to indicate this support within the command message in step550. In this instance, the command message is a connection requestcommand. Then, in step 545, the connection request command is sent tothe mobile, with or without the DHCP supported flag set. A timer is alsoset to indicate that data is pending for this mobile, and a timer is setto catch any situations where the response is missed 555.

[0072] At this point, the gateway 140 is waiting for a message from themobile device 100, or from the DHCP server 335. As shown in FIG. 9B, asignal from the mobile device 100, or the DHCP server 335 will bewritten to the IP Address mapping storage area 525. When this happens,the database 525 will notify the gateway in step 560 using traditionalcallback methods. This callback notification of an event 560 will causethe gateway 140 to check whether a new IP address has been assigned tothis mobile device 100 at step 565. If the signal from the mobileindicates that a new IP address has been assigned, then control passesto step 570, which determines if the data pending flag is set for thisparticular mobile device. If there is no data pending, then the signalis ignored 575. If, however, there is data pending for the mobile device100, then at step 585 the gateway starts to push TCP or UDP data packetsover IP to the mobile device using the new IP address assigned. Aftereach data packet is sent, the idle timer is set or reset for this mobiledevice 100 to help ensure the 1P address is kept current and is valid.

[0073]FIG. 10 is a continuation of FIG. 9, and is a data flow diagram ofhow a mobile address to IP address mapping database 525A is updated withexternal and internal events. Beginning at step 605 in FIG. 10A, datapackets arrive at the gateway 140 from the mobile devices 100. Thesepackets are checked to see if they are normal data messages or controlmessages in step 610. If the packet is a normal data packet, then theheader of the packet is opened at step 615, and the gateway 140 routesthe data to the correct redirector 12. The idle timer is also set orreset for this mobile device to ensure that the IP address is keptcurrent and valid at step 620. Additionally, the IP mapping database525A is updated in case the IP address for this mobile changed and anexpiry timer is set for the mobile to indicate when the IP address mightgo stale.

[0074] If the packet is not a normal data packet, however, then thegateway 140 determines, in step 625, if it is a response control packetfrom the mobile device, such as a PING response control packet 640 tothe connection request command sent in FIG. 9. As indicated previously,this connection request command could be a PING command message. If itis not a PING response packet, then the gateway 140 determines if thepacket is a spontaneous update packet at step 630. This spontaneousupdate packet (or spontaneous address request packet) may be used by themobile to obtain a valid IP address if the wireless network 145 does notsupport a command channel. In either case, the packet is opened and thenew IP address is used to update the mobile to IP address mapping 640within the address mapping database 525A. If the message from the mobiledevice 100 is not one of these two control data types, then furtherchecks may be performed at step 635.

[0075] The second type of events that can affect the mapping database525A are internal timer events. The gateway 140 includes several timersthat are set and reset for tracking mobile device 100 states. When oneof these timers expires at step 650 it must be checked. Another methodto perform this would be to keep an expiry time within the table entryfor this device, shown in several parts within FIGS. 9 and 10. Thisexpiry timer would be read each time a packet is to be sent to thedevice to see if the IP address had gone stale. Each time a packet issent or received from the device, the expiry time is updated to reflectthe new activity. In this example, if a timer expires the gateway 140will check the mobile's database entry to determine the state of themobile device in step 652. If there has been no response to a PINGrequest packet (i.e., a connection request command) at step 656, thenthe gateway will send another PING packet to the mobile device 654. Oncethis is done, or if there has been no missed PING responses, the gateway140 determines if the IP address has expired at step 658. If the addresshas not expired, then other timer related checks are performed at step660. If the IP address has expired, however, then the gateway 140 willclear the IP address value from the database entry for this mobiledevice at step 662 to ensure it cannot be used later.

[0076] The third type of event that can effect the mobile IP addressmapping database 525A is external DHCP requests (step 670). The firstcheck on these events is to see if a DHCP IP de-register is beingrequested at step 672. If it is, then a flag is set to indicate that themapping entry for this mobile should be cleared at step 680. If it isnot this type of DHCP request, then the gateway 140 determines if it isa DHCP IP register request at step 674. If it is, then a flag is set toindicate that the IP address should be set for this mobile at step 682.If the DHCP request is neither of these two, however, then it is passedto the normal DHCP processing logic at step 676. If the mobile's IPaddress mapping must be modified, then the IP address mapping database525A is updated at step 684. This will either cause the mapping to becleared (step 680) or to be set (step 682), which in turn will cause adatabase event notification to occur. Once this update is complete thenormal DHCP processing is completed with the requests 684.

[0077]FIG. 11A is a data flow diagram of the mobile devices' logic forcommunicating with the store-and-forward gateway 140. At step 705, dataitems arrive in from the wireless network, either from the IP basedwireless network 145, or the voice wireless network 150. If the dataitem is a data packet 710 from the IP based wireless network 145, thenit will be delivered to higher-level applications for processing andpossibly presentation to the user. Whenever data is received, a polltimer is reset to indicate that the current IP address is valid.Otherwise, the mobile determines if the data item is a connectionrequest command at step 715. If the data item is not a connectionrequest command, then at step 720 the mobile determines if the data itemis a tunnel confirmation packet. The tunnel confirmation packet istransmitted from the wireless data network 145 to the mobile deviceafter a wireless network tunnel 325 has been established. If it is not atunnel confirmation packet, then the mobile may perform other checks atstep 725, depending on the other features of the mobile device.

[0078] If the packet is a connection request command as determined atstep 715, then a flag is set at step 730 to indicate that the gateway140 is able to support connection requests on the current wirelessnetwork 145 and/or 150. At step 735, an additional check of the packetis performed to see if the gateway 140 also supports DHCP. If so, then aflag is set 740 to indicate that after the tunnel confirmation packet isreceived, there is no need to forward the new IP address to the gateway140, as it automatically receives this information when the tunnel iscreated.

[0079] Whether or not the gateway 140 supports DHCP, a tunnel request(or address request) is made by the mobile device 100 to request a newtunnel and a new IP address at step 745. If the packet received is atunnel confirmation message at step 720, then the flow diagram proceedsto FIG. 11B.

[0080] In FIG. 11B the gateway first determines if the DHCP flag isturned on at step 785. If it is, then the new IP address is saved 795 inthe IP address mapping database 525B. This address mapping database 525Bis a smaller version of the host address mapping database 525A, whichcontains all mobile devices and their current states. If there is noDHCP support, then the new IP address is saved at step 780, and themobile sends an address request response message to the gateway 140 toinform it of the new IP address for data exchange at step 775.

[0081] When the mobile device 100 first starts it is necessary to run apoll timer just in case the gateway 140 is unable to send connectionrequest packets. Whenever the poll timer expires 742, the software inthe mobile determines if a long or a short timer is running 750. Thelong timer is used as a fail-safe mechanism to ensure the gateway 140never gets confused about the state of the device. The long timer isused primarily when connection requests are supported. The long timercould be hours or days long and when it expires causes a tunnel checkoperation to be executed 755. If a short poll timer is running, themobile determines if a connection request has ever been received bychecking the connection request flag 760. If a connection request wasreceived, then the flag is turned on, which will cause the poll timer tobe lengthened to the long timeout value. Otherwise, the mobile willperform a tunnel checking operation, which would involve sending an IPpacket to itself or to the gateway, on what should be a valid tunnel755. The IP based wireless network 145 will return an error if thedevice 100 does not have a valid tunnel established with the gateway140. If the tunnel 765 is invalid or not present, the mobile device 100performs a tunnel request operation 745 to the network to acquire a newtunnel and a new IP address. If the tunnel is valid, then the current IPaddress is saved and immediately sent to the gateway 140 via aconnection response message.

[0082] Having described in detail the preferred embodiments of thepresent invention, including the preferred methods of operation, it isto be understood that this operation could be carried out with differentelements and steps. This preferred embodiment is presented only by wayof example and is not meant to limit the scope of the present invention,which is defined by the following claims.

We claim:
 1. A method of redirecting data from a messaging server to amobile device via a wireless packet data network, comprising the stepsof: receiving data at the messaging server and redirecting the receiveddata to the wireless packet data network; receiving the redirected dataat a store-and-forward server associated with the wireless packet datanetwork; determining whether a valid wireless network address isassociated with the mobile device; if a valid wireless network addressis associated with the mobile device, then: (a) addressing theredirected data using the valid wireless network address; and (b)transmitting the redirected data to the mobile device via the wirelesspacket data network; and if a valid wireless network address is notassociated with the mobile device, then: (a) transmitting a connectionrequest command to the mobile device; (b) the mobile device transmittingan address request to the wireless packet data network and obtaining avalid wireless network address; (c) providing the valid wireless networkaddress to the store-and-forward server; (d) addressing the redirecteddata using the valid wireless network address; and (e) transmitting theredirected data to the mobile device via the wireless packet datanetwork.
 2. The method of claim 1, further comprising the steps of:receiving data at the messaging server, wherein the data is addressed toa plurality of users, each user having an associated mobile device;redirecting the data to the wireless packet data network and receivingthe redirected data at the store-and-forward server; associating theredirected data to one of the users' mobile devices using addressinginformation embedded within the redirected data; and storing theredirected data in a database coupled to the store-and-forward server,wherein the database includes a plurality of sub-stores for each of theplurality of users for storing the users' redirected data.
 3. The methodof claim 2, further comprising the step of: providing an InternetProtocol (IP) based network as the wireless packet data network; andproviding an IP address as the addressing information embedded withinthe redirected data.
 4. The method of claim 2, further comprising thestep of: providing an E-mail address as the addressing informationembedded within the redirectd data.
 5. The method of claim 3, furthercomprising the step of: providing the General Packet Radio Service(GPRS) network as the IP based network.
 6. The method of claim 1,wherein the determining step further comprises the steps of: receiving avalid network address for the mobile device at the store-and-forwardserver; setting an inactivity timer for the mobile device when the validnetwork address is received at the store-and-forward server; if theinactivity timer expires, then setting a flag indicating that thenetwork address is invalid.
 7. The method of claim 1, wherein thedetermining step further comprises the steps of: the store-and-forwardserver contacting an address assignment component of the wireless packetdata network; receiving information from the address assignmentcomponent as to whether the wireless network address for the mobiledevice is valid.
 8. The method of claim 7, further comprising the stepof: providing a DHCP server as the address assignment component of thewireless packet data network.
 9. The method of claim 7, furthercomprising the step of: integrating the address assignment componentinto the store-and-forward server.
 10. The method of claim 1, whereinthe determining step further comprises the steps of: providing anaddress assignment component at the store-and-forward server; receivingnetwork addressing information at the address assignment component andassociating this addressing information with a mobile device; and theaddress assignment component providing this addressing information tothe store-and-forward server.
 11. The method of claim 1, furthercomprising the step of: providing information in the connection requestcommand as to whether the store-and-forward gateway includes an addressassignment component.
 12. The method of claim 11, further comprising thestep of: if the store-and-forward server does not include an addressassignment component, then the mobile device transmitting the validnetwork address to the store-and-forward server.
 13. The method of claim11, further comprising the step of: if the store-and-forward server doesinclude an address assignment component, then the address assignmentcomponent detecting the valid network address obtained from the wirelesspacket data network and providing the valid network address to thestore-and-forward server.
 14. The method of claim 1, further comprisingthe step of: providing a PING command as the connection request command.15. The method of claim 1, further comprising the steps of: configuringthe mobile device to periodically transmit an address request to thewireless packet data network in order to obtain a valid wireless networkaddress; and providing the valid wireless network address to thestore-and-forward server.
 16. The method of claim 1, further comprisingthe step of: providing an address mapping database at thestore-and-forward server, wherein the address mapping databaseassociates a plurality of wireless network addresses with a plurality ofmobile devices.
 17. The method of claim 1, further comprising the stepsof: providing a wireless voice network operating in association with thewireless packet data network, wherein the mobile device is capable ofcommunicating data signals via the wireless packet data network andvoice signals via the wireless voice network; and transmitting theconnection request command to the mobile device via the wireless voicenetwork.
 18. The method of claim 17, wherein the connection requestcommand is transmitted via a data channel of the wireless voice network.19. The method of claim 18, wherein the data channel is an SMS channel.20. The method of claim 17, further comprising the step of: providingthe GSM network as the wireless voice network and the GPRS network asthe wireless packet data network.
 21. The method of claim 1, furthercomprising the steps of: determining whether the mobile device isconnected to the messaging server; and if the mobile device is connectedto the messaging server, then disabling the redirecting of the receiveddata to the wireless packet data network until the mobile device is nolonger connected to the messaging server.
 22. The method of claim 21,further comprising the step of: providing an interface cradle fordirectly connecting the mobile device to the messaging server.
 23. Themethod of claim 22, further comprising the step of: coupling the mobiledevice to the interface cradle via a short range RF link.
 24. The methodof claim 1, further comprising the step of: providing a desktop systemas the messaging server, wherein the desktop system is associated with auser of the mobile device.
 25. The method of claim 1, further comprisingthe step of: providing a network server as the messaging server, whereinthe network server is associated with a plurality of users operating aplurality of mobile devices.
 26. The method of claim 1, furthercomprising the step of: transmitting the connection request command tothe mobile device via a command channel of the wireless packet datanetwork.
 27. The method of claim 1, wherein the redirected data includesE-mail messages.
 28. The method of claim 1, wherein the redirected dataincludes digitized voice messages.
 29. The method of claim 1, whereinthe redirected data includes E-mail messages and digitized voicemessages.
 30. A method of transmitting data to a dual-mode devicecapable of communicating via a wireless data network and a wirelessvoice network, comprising the steps of: transmitting data to a wirelessgateway coupled to the wireless data network; transmitting a connectionrequest command to the dual-mode device via the wireless voice network;in response to the connection request command, the dual-mode devicetransmitting an address request to the wireless packet data network; inresponse to the address request, assigning a network address of thewireless packet data network to the dual-mode device; providing theassigned network address to the wireless gateway; and transmitting thedata from the wireless gateway to the dual-mode device via the wirelessdata network using the assigned network address.
 31. A method ofredirecting data from a messaging server to a mobile device via awireless packet data network, comprising the steps of: receiving data atthe messaging server; redirecting the data from the messaging server tothe wireless packet data network; storing the redirected data at astore-and-forward server associated with the wirless packet datanetwork; configuring the mobile device to periodically transmit anaddress request to the wireless packet data network; in response to theaddress request, the network assigning a network address to the mobiledevice; providing the assigned network address to the store-and-forwardserver; and transmitting the data form the store-and-forward server tothe mobile device using the assigned network address for the mobiledevice.
 32. A method of transmitting data from a messaging server to amobile device via an IP-based packet network that dynamically assigns IPaddresses to mobile devices on an as-needed basis, comprising the stepsof: receiving redirected data addressed for a first mobile device fromthe messaging server at a store-and-forward gateway associated with theIP-based packet network; determining whether the first mobile device isassociated with a valid IP address; if the first mobile device isassociated with a valid IP address, then addressing the redirected datausing the valid IP address and transmitting it to the mobile device viathe IP-based packet network; if the first mobile device is notassociated with a valid IP address, then: transmitting a connectionrequest command to the first mobile device instructing it to acquire anIP address, the first mobile device obtaining a valid IP address fromthe IP-based packet network, providing the valid IP address of the firstmobile device to the store-and-forward gateway, and transmitting theredirected data to the first mobile device using the valid IP address.33. A system for transmitting data to a mobile device, comprising: amessaging server having a redirector application for receiving data froma plurality of sources and for redirecting the received data to anexternal network; a wireless packet data network coupled to the externalnetwork, the wireless packet data network having a store-and-forwardserver for receiving redirected data from the messaging server and fortransmitting the redirected data to the mobile device; wherein themobile device is configured to periodically contact the wireless packetdata network in order to obtain a valid network address, the validnetwork address being communicated to the store-and-forward server sothat the store-and-forward server can address the redirected data to themobile device via the wireless packet data network.
 34. A system fortransmitting data to a mobile device, comprising: a messaging serverhaving a redirector application for receiving data from a plurality ofsources and for redirecting the received data to an external network; awireless packet data network coupled to the external network, thewireless packet data network having a store-and-forward server forreceiving redirected data from the messaging server and for transmittingthe redirected data to the mobile device; wherein the store-and-forwardserver deteremines whether the mobile device is associated with a validnetwork address of the wireless packet data network, and if it is notthen the store-and-forward server transmits a connection request commandto the mobile device instructing it to obtain a valid network addressfrom the wireless packet data network.
 35. The system of claim 34,further comprising: a parallel wireless voice network operating inconjunction with the wireless packet data network, wherein the mobiledevice is capable of communication over both the wireless packet datanetwork and the wireless voice network.
 36. The system of claim 35,wherein the wireless packet data network is an Internet Protocl (IP)based network.
 37. The system of claim 36, wherein the IP based networkis the GPRS network.
 38. The system of claim 37, wherein the wirelessvoice network is the GSM network.
 39. The system of claim 34, furthercomprising: a local area network (LAN) coupling the messaging server tothe plurality of sources.
 40. The system of claim 39, wherein themessaging server is a desktop computer system associated with the userof the mobile device.
 41. The system of claim 39, wherein the messagingserver is a network server associated with a plurality of usersoperating a plurality of mobile devices.
 42. The system of claim 34,further comprising: a firewall system coupled between the messagingserver and the external network.
 43. The system of claim 34, wherein theexternal network is the Internet.
 44. The system of claim 34, furthercomprising: an interface cradle for coupling the mobile device to themessaging server.
 45. The system of claim 44, wherein the mobile devicemakes a direct electrical connection to the interface cradle.
 46. Thesystem of claim 44, wherein the mobile device makes a wirelessconnection to the interface cradle.
 47. The system of claim 44, whereinthe messaging server detects whether the mobile device is coupled to theinterface cradle, and if so, the messaging server disables redirectionof the data.
 48. The system of claim 35, wherein the connection requestcommand is transmitted to the mobile device via the parallel wirelessvoice network.
 49. The system of claim 35, wherein the parallel wirelessvoice network includes an SMS data channel for transmitting theconnection request command to the mobile device.
 50. The system of claim34, whrein the connection request comman is a PING command.
 51. Thesystem of claim 34, wherein the connection request command includesinformation indicating whether the store-and-forward server includes anaddress assignment component.
 52. The system of claim 34, wherein themessaging server is Microsoft Exchange Server.
 53. The system of claim34, wherein the store-and-forward server includes an integrated addressassignment component.
 54. The system of claim 53, wherein the integratedaddresss assignment component is a DHCP server.
 55. The system of claim34, further comprising: an address assignment component associated withthe wireless packet data network and coupled to the store-and-forwardserver.
 56. The system of claim 34, wherein the wireless packet datanetwork includes: one or more network entry points, wherein thestore-and-forward server is coupled to at least one of the one or morenetwork entry points; a plurality of network routers; and a name server.57. The system of claim 34, wherein the wireless packet data networkcreates a wireless network tunnel through the one or more network entrypoints and the plurality of network routers in order to transmit data tothe mobile device.
 58. The system of claim 57, wherein the wirelessnetwork tunnel transports TCP data packets.
 59. The system of claim 57,wherein the wireless network tunnel transports UDP data packets.
 60. Thesystem of claim 57, wherein the mobile device is configured to transmitan address request to the wireless packet data netwok upon receiving theconnection request command from the store-and-forward server.
 61. Thesystem of claim 60, wherein the wireless packet data network dynamicallyassigns a valid network address to the mobile device in response to theaddress request.
 62. The system of claim 61, wherein the valid networkaddress is provided to the store-and-forward server.
 63. The system ofclaim 62, wherein the mobile device transmits the valid network addressdirectly to the store-and-forward server.
 64. The system of claim 62,wherein the valid network address is provided to the store-and-forwardserver by an address assignment component coupled to the wireless packetdata network and integrated into the store-and-forward server.
 65. Thesystem of claim 34, further comprising: an address mapping database forstoring a table of mobile devices and associated network addresses. 66.The system of claim 34, wherein the mobile device is a two-way pagingcomputer.
 67. The system of claim 34, wherein the mobile device is acellular telephone having data messaging capabilities.
 68. The system ofclaim 34, wherein the mobile device is a portable digital assistant. 69.The system of claim 34, wherein the data includes E-mail messages. 70.The system of claim 44, wherein the mobile device is configured tocommunicate encryption/decryption information to the messaging serverwhen the mobile device is coupled to the interface cradle.
 71. Thesystem of claim 34, further comprising: an electronic alarm system incommunication with the messaging server, wherein the electronic alarmsystem senses an alarm condition and transmits data to the messagingserver to be redirected to the mobile device.
 72. The system of claim34, further comprising: a personal monitoring system in communicationwith the messaging server, wherein the personal monitoring systemmonitors at least one vital sign of a human and transmits vital signdata to the messaging server to be redirected to the mobile device. 73.The system of claim 34, further comprising: at least one of theplurality of sources selected from the group consisting of: a motiondetector, an Interent Web site, an E-mail message store, a PBXinformation exchange, or an information database.
 74. The system ofclaim 34, wherein the received data is selected from the groupconsisting of: digitized voice messages, E-mail messages, instantmessages, corporate inventory records, corporate sales records, alarminformation, vital sign information, or equipment monitoringinformation.
 75. A method of receiving and processing data packets at amobile device configured to operate with a wireless packet data network,comprising the steps of: receiving a data packet at the mobile device;determining whether the data packet is an application packet, and if so,then routing the packet to one or more applications operating on themobile device; determining whether the data packet is a connectionrequest packet from the wireless packet data network, and if so, theninitiating a wireless network tunnel request operation with the wirelesspacket data network.
 76. The method of claim 75, further comprising thestep of: determining whether the data packet is a tunnel confirmationpacket from the wireless packet data network, the tunnel confirmationpacket including a valid network address, and if so, then transmittingthe valid network address to a store-and-forward server associated withthe wireless packet data network.
 77. A mobile device for receiving datafrom a messaging server coupled to a wireless packet data network,comprising: a receiver for receiving a connection request commandinstructing the mobile device to obtain a valid network address; and atransmitter for transmitting an address request to the wireless packetdata network in response to the connection request command, wherein thewireless packet data network dynamically allocates a valid networkaddress in response to the address request and transmits the validnetwork address to the mobile device.
 78. A dual-mode communicator forcommunicating data signals via a wireless packet data network and forcommunication voice signals via a wireless voice network, the dual-modecommunicator comprising: means for receiving a connection requestcommand via the wireless voice network; means for generating an addressrequest in response to the connection request command and fortransmitting the address request to the wireless data network; and meansfor receiving a valid network address from the wirless data network inresponse to the address request.
 79. A context activation methodcomprising the steps of: (A) receiving data items at a store and forwardgateway from a host system; (B) storing the data items at the store andforward gateway; (C) determining whether a valid network address isassociated with the mobile; (D) if there is a valid network address forthe mobile, then: i. sending the stored data items to the mobile, viathe wireless network, by associating the valid network address with thestored data items; (E) if there is no valid network address for themobile, then: i. sending a connection request command via a controlchannel; ii. receiving the connection request command at the mobile;iii. if the connection request command indicates that the store andforward gateway can detect an assignment of a network address, then: (a)sending a network address request from the mobile to the wirelessnetwork; (b) allocating an assigned network address for the mobile; (c)sending the assigned network address to the mobile from the wirelessnetwork; (d) detecting by the store and forward gateway the assignednetwork address; (e) associating, at the store and forward gateway, theassigned network address with the mobile; (f) sending stored data itemsat the store and forward gateway to the mobile by addressing data itemwith the assigned network address; iv. if the connection request commandindicates that the store and forward gateway cannot detect an assignmentof a network address, then: (a) sending a network address request fromthe mobile to the wireless network; (b) assigning a network address forthe mobile; (c) sending the assigned network address to the mobile fromthe wireless network; (d) sending the assigned network address to thestore and forward gateway from the mobile; (e) associating, at the storeand forward gateway, the assigned network address with the mobile; (f)sending stored data items at the store and forward gateway to the mobileby addressing data item with the assigned network address.
 80. A contextactivation method of claim 79, further comprising the steps of: (A)addressing data items as they are received at the store and forwardgateway with the assigned network address; (B) sending the stored dataitems to the mobile; (C) upon detecting that the assigned networkaddress is no longer a valid network address, ceasing the addressing andsending of data items with the assigned network address.
 81. A contextactivation method as in claim 79, wherein the wireless network is atleast a data-packet network.
 82. A context activation method as in claim79, wherein the network address is an Internet Protocol (IP) address.83. A context activation method as in claim 79, wherein the sending stepof (E) iii.(a) comprises sending the network address request to aDynamic Host Configuration Protocol (DHCP) component of the wirelessnetwork.
 84. A context activation method as in claim 83, wherein theallocation step of (E) iii.(b) comprises having the DHCP componentassign the network address.
 85. A context activation method as in claim79, wherein the association step of (E) iii.(e) comprises associating apermanent identification mobile address with the assigned networkedaddress.
 86. A context activation method comprising the steps of: (A)receiving data items at a store and forward gateway from a host system;(B) storing the data items at the store and forward gateway; (C)determining whether a valid network address is associated with themobile; (D) if there is a valid network address for the mobile, then: i.ending the stored data items to the mobile, via the wireless network, byassociating the valid network address with the stored data items; (E) ifthere is no valid network address for the mobile, then: i. sending aconnection request command via a control channel; ii. receiving theconnection request command at the mobile; iii. sending a network addressrequest from the mobile to the wireless network; iv. allocating anassigned network address for the mobile; v. sending the assigned networkaddress to the mobile from the wireless network; vi. detecting by thestore and forward gateway the assigned network address; vii.associating, at the store and forward gateway, the assigned networkaddress with the mobile; and, viii. sending stored data items at thestore and forward gateway to the mobile by addressing data item with theassigned network address.
 87. A context activation method comprising thesteps of: (A) receiving data items at a store and forward gateway from ahost system; (B) storing the data items at the store and forwardgateway; (C) determining whether a valid network address is associatedwith the mobile; (D) if there is a valid network address for the mobile,then: i. sending the stored data items to the mobile, via the wirelessnetwork, by associating the valid network address with the stored dataitems; (E) if there is no valid network address for the mobile, then: i.sending a connection request command via a control channel; ii.receiving the connection request command at the mobile; iii. sending anetwork address request from the mobile to the wireless network; iv.assigning a network address for the mobile; v. sending the assignednetwork address to the mobile from the wireless network; vi. sending theassigned network address to the store and forward gateway from themobile; vii. associating, at the store and forward gateway, the assignednetwork address with the mobile; and, viii. sending stored data items atthe store and forward gateway to the mobile by addressing data item withthe assigned network address.